package Pong;

import java.io.*;
import java.net.*;

public class Server extends Thread{
	
	public ServerThread[] speler = new ServerThread[1000];
	int aantal = 0;
	int balx,baly;
	Bal bal = new Bal(this);
	boolean listening = true;
	
	public void run() {
		ServerSocket serverSocket = null;
        try {
           serverSocket = new ServerSocket(4444);
           System.out.println("Server draait");
        } catch (IOException e) {
            System.err.println("Could not listen on port: 4444.");
            e.printStackTrace();
            System.exit(-1);
        }
        
        try {
        	Socket clientSocket = null;
        while (listening){
        	clientSocket = serverSocket.accept(); // wacht op client
        	  
        	  // maak nieuwe thread
         	speler[aantal] = new ServerThread(clientSocket, aantal,this);
        	//speler[aantal].start(); // start() roept de run() op van de thread 
	        aantal++;	        
	        
        }      

        serverSocket.close();
        } catch (IOException ioe) {
        	ioe.printStackTrace();
        }
        
	}
	
	public String samenplakkenXpos(){
		StringBuffer samengeplaktexpossen = new StringBuffer();
		for(int i = 0; i<aantal;i++){
			samengeplaktexpossen.append(speler[i].getClientXpos()+" ");
		}
		samengeplaktexpossen.append(bal.getXpos_thread()+" "+bal.getYpos_thread());
		return samengeplaktexpossen.toString();
	}

	public void startspel() {
		if(aantal == 2){
        	for(int i = 0;i<aantal;i++){
        		speler[i].start(); // start() roept de run() op van de thread 
        		System.out.println("Client nr " + (i+1) + " heeft zich aangemeld") ;
        	}
        }
		
		try {
			this.currentThread().sleep(50); //We wachten 50ms tot dat alles in orde is tegen dat we de bal starten
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		bal.start();
	}

	public int getxpos_1() {
		return Integer.parseInt(speler[0].getClientXpos());
	}

	public int getxpos_2() {
		return Integer.parseInt(speler[1].getClientXpos());
	}

	public void thstop() {
		listening = false;
		System.exit(-1);
	}
}